#ifndef _MENU_H
#define _MENU_H

#include "vg.h"
#include "vt.h"
#include "ints.h"

#include "queue.h"
#include "scancode.h"
#include "config.h"


/**
 * Esta função imprime no ecrã, em modo texto, o Menu Principal do jogo.
 * @param option indica qual a linha a ser destacada.
 */
void printMenu(int option);

/**
 * Esta função imprime no ecrã, em modo texto, o Menu OPÇÕES.
 * @param option indica qual a linha a ser destacada.
 */
void printOptions(int option);

/**
 * Esta função imprime no ecrã, em modo texto, o logotipo do jogo.
 */
void printLogo();

/**
 * Esta função é a responsável pela configuração do som, e activa-o/desactiva-o consuante a opção 
 * definida pelo utilizador.
 */
void toggleSound();

/**
 * Esta função imprime no ecrã, em modo texto, a opção de desligar e ligar o som.
 * @param option indica qual a linha a ser destacada.
 */
void printSoundToggle(int option);

/**
 * Esta função é a responsável pela configuração das teclas e configura-as segundo 
 * os valores que são recebidos no teclado.
 */
void configKeys();

/**
 * Esta função reprenta o Menu de Opções do Jogo. Sai do modo gráfico e entra no modo de texto.
 * @return int opção selecionada
 */
int options();

/**
 * Esta função reprenta o Menu Principal do Jogo. Sai do modo gráfico e entra no modo de texto.
 * @return int opção selecionada
 */
int menu();

#endif
